package br.com.fafica.biblioteca.livro.model;


public class RepositorioLivroArray implements IRepositorioLivro{
	
	private Livro[] livros;
	private int indice;
	public static final int tamanho = 5;
	
	public RepositorioLivroArray(){
		livros = new Livro [tamanho];
		indice = 0;
	}
	
	RepositorioLivroArray(Livro[] livros, int indice){
		this.livros = livros;
		this.indice = indice;
	}

	public void inserir (Livro livro){
		livros[indice] = livro;
		indice = indice + 1;
	}

	public Livro remover (String titulo) throws LivroNaoEncontradoException{
		int i = getIndice(titulo);
		livros[i] = livros[indice - 1];
		indice = indice - 1;
		return livros[indice] = null;
	}

	public Livro procurar(String titulo) throws LivroNaoEncontradoException{
		int i = getIndice(titulo);
		System.out.println("teste");
		return livros[i];
	}

	public void atualizar(Livro livro) throws LivroNaoEncontradoException{
		int i = getIndice(livro.getTitulo());
		livros[i] = livro;
	}


	public boolean existe(String titulo) {
	       boolean resposta;
	       try {
	           getIndice(titulo);
	           resposta = true;
	       } catch(LivroNaoEncontradoException ex) {
	           resposta = false;
	       }
	       return resposta;
	}
	
	private int getIndice(String titulo) throws LivroNaoEncontradoException{
		int resposta = -1;
		boolean achou = false;
		for (int i = 0; !achou && (i < indice); i = i + 1){
			if (livros[i].getTitulo().equals(titulo)){
				resposta = i;
				achou = true;
			}
		}
		if (!achou) throw new LivroNaoEncontradoException(titulo);
		return resposta;
	}

	
}
